package com.bzkj.basicinfo.domain.receive;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * WMS收货单明细表
 *
 * @TableName wms_receive_order_detail
 *@author lixinyu
 * @date 2025-10-22
 */
@Data
public class WmsReceiveOrderDetailEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 收货单主表ID
     */
    private Long receiveOrderId;

    /**
     * 收货单号
     */
    private String receiveOrderNo;

    /**
     * 行号
     */
    private Integer lineNo;

    /**
     * 商品ID
     */
    private String productId;

    /**
     * 商品编码
     */
    private String productCode;

    /**
     * 商品名称
     */
    private String productName;

    /**
     * 规格
     */
    private String productSpec;

    /**
     * 批次号
     */
    private String batchCode;

    /**
     * 生产日期
     */
    private String productDate;

    /**
     * 有效期
     */
    private String expDate;

    /**
     * 生产厂商
     */
    private String manufacturer;

    /**
     * 计划数量
     */
    private BigDecimal planQuantity;

    /**
     * 已收货数量
     */
    private BigDecimal receivedQuantity;

    /**
     * 拒收数量
     */
    private BigDecimal rejectedQuantity;

    /**
     * 单位编码
     */
    private String unitCode;

    /**
     * 单位名称
     */
    private String unitName;

    /**
     * 明细状态（0待收货/1部分收货/2已收货/3已关闭）
     */
    private String detailStatus;

    /**
     * 质量状态（qualified合格/unqualified不合格/pending待检）
     */
    private String qualityStatus;

    /**
     * 暂存货位（收货后暂存区）
     */
    private String tempLocation;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 修改人
     */
    private String updateBy;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 扩展字段1
     */
    private String def1;

    /**
     * 扩展字段2
     */
    private String def2;

    /**
     * 扩展字段3
     */
    private String def3;

    /**
     * 扩展字段4
     */
    private String def4;

    /**
     * 扩展字段5
     */
    private String def5;
}
